Java Map Literal
· 4 min read
다른 언어에서 Map문자열을 지원하는데, Java에서는 이를 지원하지 않는다. 그런데 DZone이라는 웹 싸이트를 보다가 Java에서도 이와 유사하게 구현을 할 수 있는 것을 발견하여, 이에 대한 내용을 적어 본다.
다른 언어 Swift, JavaScript, Python 그리고 Scala(Literal까진 아니지만, 그래도 끼워준다)들이 지원하는 Map literal을 살펴보자
Swift
var dictionary = ["a": 1, "b": 2, "c": 3]
JavaScript
var object = {"a": 1, "b": 2, "c": 3};
혹은
var object = new Object();
object["a"] = 1;
object["b"] = 2;
object["c"] = 3;
Python
map = { "a": 1, "b": 2, "c": 3}
map.get("a") // 결과 1
Scala
val map = Map("a" -> 1)
map.get("a") // 결과 Option[Int] = Some(1)
map.get("a").get // 결과 Int = 1
Java
위에서와 같이 다른 언어들은 Java 보다 쉽게 literal에서 Map을 생성할 수 있다. 그런데 Java에서는 아래와 같이 Map을 생성하고 일일이 key, value의 element를 넣어 주어야 한다.
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
이렇게 하는데 전혀 불편함이 없는 개발자분도 있겠지만, 난 다른 언어처럼, 조금이라도 짧게 코드를 작성하면 좋을 것 같다. Java처럼 JVM에서 실행가능한 Groovy를 사용하면 짧은 코드를 작성할 수 있겠지만 그 방법 말고 다른 방법으로 해보겠다.